﻿using Bookvar.ObjectModel;

namespace Bookvar.ObjectModel
{
    /// <summary>
    /// Interface for the CollaborationEventsPublisher. This service publishes events from the 
    /// collaboration service. It is intended to be used internally by the collaboration service
    /// for decoupled event publishing.
    /// </summary>
    public interface ICollaborationEventsPublisher
    {
        void PublishUserSaid(CollaborationUser user, string message);

        void PublishUserWhispered(CollaborationUser user, string message);

        void PublishUserJoined(CollaborationUser user);

        void PublishUserLeft(CollaborationUser user);

        void PublishServerClosed(CollaborationUser host);
    }
}